Sequence detection methods, devices, and systems for spectrum sensing in dynamic spectrum access networks

ABSTRACT

In one embodiment, a cognitive radio dynamic spectrum access sensing system is configured to incorporate a hidden Markov model and a risk function to determine the primary user state sequence with the minimum amount of associated risk. The system comprises one or more weighted cost factors that can be used to handle a missed detection sensing error differently from a false alarm sensing error. The system further comprises a complete forward partial backward computation designed to increase sensing accuracy with limited effect on sensing delay and complexity.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims benefit under 35 U.S.C. 119(c) to U.S.Provisional Application No. 61/341,882, filed Apr. 6, 2010, which ishereby incorporated by reference in its entirety, including specificallybut not limited to systems and methods relating to sequence detectionfor dynamic spectrum access.

BACKGROUND

1. Field

Embodiments of the disclosure generally relate to the field of dynamicspectrum access in wireless networks, and in particular, to systems,methods, and devices for primary user sequence detection.

2. Description of the Related Art

Cognitive radio is any radio that may change its transmission behaviorbased on interaction within the radio environment which it operates.Cognitive radios may perform dynamic spectrum access, which is a methodof communication between nodes in a wireless network that takesadvantage of inefficient use of already used or licensed radio spectrum.It is well known in the art that total throughput of informationtransmitted in a radio spectrum can be increased by allowing certaincognitive radio wireless nodes or secondary radio users to transmit whenthe traditional or primary radio users of the spectrum are idle.Transmission performed in this manner allows multiple wireless radionetworks to use the same radio spectrum, thus increasing the exchange ofinformation, while reducing interference to the traditional radio users'use of the spectrum thru “smart” transmission.

Determining when primary radio users are idle and not transmitting in aradio spectrum is called spectrum sensing. One approach is the detectionof a pilot signal that is transmitted simultaneously with thetraditional user's data. When the pilot signal is detected, thecognitive radio cannot transmit.

Another approach for spectrum sensing is called energy detection. Energydetection is based on the assumption that all radio transmissions,including the primary users' transmissions, have inherent associatedenergy. The energy can be measured at different radio frequencies acrossa radio spectrum. After removing the energy associated with out of bandnoise, an energy detector compares these energy levels to minimum energylevel thresholds to determine whether there is enough energy in theprimary radio users' spectrum to make the determination that it is theprimary radio users' current transmissions that is the cause of theenergy. If the energy meets these thresholds or a subset of thresholds,the spectrum is considered occupied by the primary users. However, ifthe energy thresholds are not met, then the primary users are consideredidle and the channel is free. A cognitive radio user can then access thespectrum.

SUMMARY OF THE DISCLOSURE

In some embodiments, the sequence detection sensing system is configuredto collect observations of primary user transmission time periods usingan antenna, and may correspond to the primary user transmission state ofON or OFF during each time period. The antenna may receive primary usertransmissions in one or more frequency bands. The system may collectthese observations into overlapping or non-overlapping window datastructures stored in one or more data storage devices. The system maytake as input the observation window and primary spectrum use parameterswhich indicate a probabilistic pattern of behavior for the primary user.The primary spectrum use parameters may also be stored in the one ormore data storage devices. One or more processors may be configured toexecute modules, including a sensing module.

A sensing module may determine, assess, calculate, predict, estimate,and/or generate a sensing decision and/or sensing decision relatedinformation. The sensing module may take advantage of the probabilisticrelationships between observations in a hidden Markov model. In someembodiments, it uses these relationships, determined from the primaryuser spectrum use parameters, by computing forward and backwardprobabilities of each potential state during the observation window timeperiods. Based on the forward and backward probabilities, posteriorprobabilities for each potential state observation may be calculated.

In some embodiments, the sensing module uses the posterior probabilitiesto perform a risk analysis that produces a primary user state estimate.The risk analysis takes into account a weighted cost of missed detectionerrors and false alarm errors created by interference in the monitoredfrequency bands. A missed detection occurs if the primary user transmitsbut the secondary user fails to detect the transmission. A false alarmoccurs if the secondary user determines the primary user istransmitting, when in actuality the primary user is not transmitting.The system reduces these sensing errors by assigning each error a costaccording to a policy implemented through weighted cost values. Theweighted cost value of each error is multiplied by the posteriorprobability of that error occurring given a potential primary user state(ON or OFF) during a collected observation time period. The multipliedcost-probability values for each error may be summed together to createa risk value for the proposed potential state. The ON or OFF state withthe least amount of associated risk, i.e. the minimum risk state, may beselected. This process may be performed for each state in theobservation window, creating a sequence of minimum risk states. A state,a sequence of states, risk information, and/or probability informationmay then be returned as a primary user state estimate to a sensingdecision consumer where a transmission decision may be made. The systemcan then use the sensing estimate to make a transmission decision basedon primary user behavior, creating a reduction in interference to aprimary user that was created by the secondary user, and increasing thethroughput of secondary user transmission by more accurately sensing theprimary user.

In some embodiments, the sensing module may use a complete forward onlyimplementation. A complete forward only implementation may keep arunning summary of all forward probabilities. This implementation mayuse the running summary to perform the risk analysis for only oneobservation time period, and need not calculate backward or posteriorprobabilities. Although accuracy is reduced compared to using some otherimplementations disclosed herein, the complete forward onlyimplementation also reduces delay, computation time, and complexity ofthe sensing system.

In some embodiments, the sensing module may use a complete forwardpartial back implementation. A complete forward partial backimplementation may use in addition to the forward observations,calculated backward probabilities and corresponding posteriorprobabilities for only a subset of observations. By doing so, it furtherexploits the hidden Markov model's memory compared to the completeforward implementation and increases accuracy of sensing estimates, withonly modest increases in sensing delay, computation time, and complexityunder certain circumstances.

In some embodiments, a computer implemented method provides spectrumsensing. The method can include accessing computer-executableinstructions from at least one computer-readable storage medium andexecuting the computer-executable instructions, thereby causing computerhardware comprising at least one computer processor to performoperations. The operations can comprise, receiving one or more primaryuser spectrum use parameters, receiving a primary user state observationdata set corresponding to a frequency spectrum, receiving one or morecost factors, determining one or more forward state probabilities basedon the one or more primary user spectrum use parameters and a firstsubset of the primary user state observation data set corresponding tothe frequency spectrum, determining one or more partial backward stateprobabilities based on the one or more primary user spectrum useparameters and a second subset of the primary user state observationdata set corresponding to the frequency spectrum, determining one ormore posterior state probabilities for one or more observations in theprimary user state observation data set, determining a risk of a sensingerror for each potential primary user state corresponding to anobservation period about which a sensing decision is being made based onone or more cost factors and the one or more posterior stateprobabilities, selecting a potential primary user state having a minimumamount of risk of sensing error for each observation corresponding to atime period about which a sensing decision is being made, and/or sendingthe one or more selected potential primary user states to a sensingdecision consumer.

In some embodiments, a storage medium has a computer program storedthereon for causing a suitably programmed system to processcomputer-program code by performing a method for spectrum sensing whenthe computer program is executed on the suitably programmed system. Themethod can comprise receiving one or more primary user spectrum useparameters, receiving a primary user state observation data setcorresponding to a frequency spectrum, receiving one or more costfactors, determining one or more forward state probabilities based onthe one or more primary user spectrum use parameters and a first subsetof the primary user state observation data set corresponding to thefrequency spectrum, determining one or more partial backward stateprobabilities based on the one or more primary user spectrum useparameters and a second subset of the primary user state observationdata set corresponding to the frequency spectrum, determining one ormore posterior state probabilities for one or more observations in theprimary user state observation data set, determining a risk of a sensingerror for each potential primary user state corresponding to anobservation period about which a sensing decision is being made based onone or more cost factors and the one or more posterior stateprobabilities, selecting a potential primary user state having a minimumamount of risk of sensing error for each observation corresponding to atime period about which a sensing decision is being made, and/or sendingthe one or more selected potential primary user states to a sensingdecision consumer.

In some embodiments, the sensing system may comprise an antenna, one ormore data storage devices, and one or more processors. Stored on thedata storage devices is a first parameter vector representing theprimary user state observation data, a second parameter vectorrepresenting decision weights or cost parameters, and a stateobservation data set. The processors are configured to determine twosets of quantities from the observation data set by using the firstparameter vector, and to determine a primary user state estimate fromthe two sets of quantities and the second parameter vector. The systemsends the primary user estimate to the sensing decision consumer.

For purposes of this summary, certain aspects, advantages, and novelfeatures of the invention are described herein. It is to be understoodthat not necessarily all such advantages may be achieved in accordancewith any particular embodiment of the invention. Thus, for example,those skilled in the art will recognize that the invention may beembodied or carried out in a manner that achieves one advantage or groupof advantages as taught herein without necessarily achieving otheradvantages as may be taught or suggested herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other features, aspects and advantages of theembodiments of the invention are described in detail below withreference to the drawings of various embodiments, which are intended toillustrate and not to limit the invention. The drawings comprise thefollowing figures in which:

FIG. 1 is a diagram illustrating the relationship between the primaryusers of a radio spectrum and the secondary users of a radio spectrum.

FIG. 2A is a block diagram depicting one embodiment of a systemconfigured to run software for implementing sequence detection describedherein and its relationship to other wireless network nodes.

FIG. 2B is a block diagram depicting one embodiment of a wireless accessmodule implementing one or more embodiments of the sequence detectionsystem described herein.

FIG. 2C is a process flow diagram of one embodiment for sensing,sequence detection, and transmission by a secondary user.

FIG. 2D is a process flow diagram of one embodiment for sensing,sequence detection, and transmission by a secondary user.

FIG. 3 is a diagram illustrating some embodiments use of a hidden Markovmodel designed for exploiting primary user state history.

FIG. 4 is a timing diagram illustrating the sensing errors of falsealarm and missed detection.

FIG. 5A is a diagram illustrating part of one embodiment for computingforward and partial backward probabilities.

FIG. 5B is a diagram illustrating overlapping and non-overlappingsensing windows.

FIG. 6A is a process flow diagram of some embodiments for sensing,sequence, and state detection.

FIG. 6B is a process flow diagram of some embodiments for sensing,sequence, and state detection.

FIG. 7 is a graph illustrating some embodiments expected cost given asignal to noise ratio.

FIG. 8 is a graph illustrating comparative performance with varioussensing windows versus the probability of detection.

DESCRIPTION OF THE EMBODIMENTS

Although several embodiments, examples and illustrations are disclosedbelow, it will be understood by those of ordinary skill in the art thatthe invention described herein extends beyond the specifically disclosedembodiments, examples and illustrations and includes other uses of theinvention and obvious modifications and equivalents thereof. Embodimentsof the invention are described with reference to the accompanyingfigures, wherein like numerals refer to like elements throughout. Theterminology used in the description presented herein is not intended tobe interpreted in any limited or restrictive manner simply because it isbeing used in conjunction with a detailed description of certainspecific embodiments of the invention. In addition, embodiments of theinvention can comprise several novel features and no single feature issolely responsible for its desirable attributes or is essential topracticing the inventions herein described.

Details regarding several illustrative preferred embodiments forimplementing the system and method described herein are described belowwith reference to the figures. At times, features of certain embodimentsare described below in accordance with that which will be understood orappreciated by a person of ordinary skill in the art to which the systemand method described herein pertain. For conciseness and readability,such a “person of ordinary skill in the art” is often referred to as a“skilled artisan.”

As a skilled artisan would generally recognize, new radio spectrum ishard to obtain. The Federal Communications Commission (FCC) regulateswho is allowed to transmit based on five radio dimensions—threedimensional space, time, and frequency—by assigning frequencies, areas,and times to licensed transmitters. Currently there are few of these“spectrum opportunities” left to be assigned by the FCC. Mostfrequencies and geographic regions are already licensed. However, manyalready licensed spectrums could be reused to increase the efficiency ofspectrum utilization, and thus open it up for more licensed users. TheFCC has indicated that cognitive radio in particular “has the potentialto significantly increase the efficiency of spectrum utilization byenabling radios to access and share available spectrum dynamicallyacross different frequencies, thus making more productive use of thisvaluable resource for the benefit of all consumers.” One way to increasespectrum utilization is to allow a secondary user to use an alreadyassigned radio spectrum when the primary user is not using the spectrum.However, it can be difficult to determine when the primary user is usingor not using the spectrum, and difficult to predict how long any primaryuser's use or non-use will last.

To help solve these difficulties and increase the efficiency of spectrumutilization, this disclosure illustrates sensing methods and systemswith a number of advantages. These advantages include, but are notlimited to, reducing interference to primary and secondary users,increasing the accuracy of determining when the primary user is or isnot using the spectrum, allowing for implementation of sensing errorpolicy goals, and providing for tradeoffs to occur between sensingaccuracy and sensing efficiency.

A secondary user's transmission in a primary user's radio spectrum maycreate interference with the primary user's transmission, and thusinhibit the primary user's ability to communicate with any of itslisteners. To reduce interference and its negative effects on theprimary user, the disclosure herein describes how to increase sensingaccuracy by taking advantage of the memory in a hidden Markov model thattracks primary user state. The system exploits this memory by analyzingtransmission observation sequences rather than analyzing a singleobservation state, and can make it possible to increase efficiency ofspectrum utilization, while at the same time decreasing the odds thatthe secondary user's transmission will occur at the same time as theprimary user's transmission and create interference.

The systems and methods disclosed herein also allow for theimplementation of sensing error policy goals that treat missed detectionsensing errors differently from false alarm sensing errors. Thedisclosure demonstrates how it can be important in certain circumstancesto treat a missed detection sensing error differently from a false alarmsensing error because, unlike false alarms, only missed detectionscreate interference with the primary user. Disclosed herein is anembodiment of a risk analysis that implements a sensing error policyand/or can provide different risk costs to a missed detection and afalse alarm. It is advantageous to provide a method of adjusting sensingerror policy because entities that can control secondary user behavior,such as wireless network administrators, equipment manufacturers,standards bodies, and the government, may wish to be more or lessconservative with a missed detection error's affect on a primary user'stransmissions given different times, frequencies, and locations.

Furthermore, the disclosure describes how to trade off sensing accuracyfor increased sensing performance. Great accuracy can be achieved bytaking into account forward and backward probabilities when making asensing decision. However, nearly as large increases in accuracy canalso occur under certain circumstances by taking into account only asmall set of backwards possibilities, while at the same time reducingsensing delay and complexity. By reducing sensing delay and complexity,the secondary user can make a sensing decision more quickly and beginits own transmission sooner after a primary user stops transmitting,resulting in an increase in secondary user use of the spectrum.

It will be apparent to a skilled artisan, in light of this disclosure,that the system and method described herein can advantageously beimplemented using software, hardware, firmware, or any combination ofsoftware, hardware, and firmware. In some embodiments, the system isimplemented as a number of software modules that comprise computerexecutable code for performing the functions described herein. In someembodiments, the computer-executable code is executed on one or moregeneral purpose computers. However, a skilled artisan will appreciate,in light of this disclosure, that any module that can be implementedusing software to be executed on a general purpose computer can also beimplemented using a different combination of hardware, software, orfirmware. For example, such a module can be implemented completely inhardware using a combination of integrated circuits. Alternatively oradditionally, such a module can be implemented completely or partiallyusing specialized computers designed to perform the particular functionsdescribed herein rather than by general purpose computers.

It will also be apparent to a skilled artisan, in light of thisdisclosure, that the modules described herein can be combined ordivided. For example, a skilled artisan will appreciate, in light ofthis disclosure, that any two or more modules or components can becombined into one module or component. Thus, referring to FIG. 2A, thewireless access module 230 and the I/O devices and interfaces module 210may be combined into a single module that performs all or part of thefunctions of both modules. Conversely, any one module can be dividedinto multiple modules. For example, the wireless access module 230 canbe divided into multiple modules such that each individual moduleperforms part the functions of the wireless access module 230 and all ofthe modules collectively perform all such functions.

In general the word “module,” as used herein, refers to logic embodiedin hardware or firmware or to a collection of software instructions,having entry and exit points. Software modules are written in a programlanguage, such as JAVA, C or C++, or the like. Lower level languages,such as processor specific instructions in assembly or machine languagemay also be used. Software modules may be compiled or linked into anexecutable program, installed in a dynamic link library, or may bewritten in an interpreted language such as BASIC, PERL, LUA, or Python.Software modules may be called from other modules or from themselves,and/or may be invoked in response to detected events or interruptions.Modules implemented in hardware include connected logic units such asgates and flip-flops, and/or may include programmable units, such asprogrammable gate arrays or processors.

Generally, the modules described herein refer to logical modules thatmay be combined with other modules or divided into sub-modules despitetheir physical organization or storage. The modules may be executed byone or more computing systems, and may be stored on or within anysuitable computer readable medium, or implemented in-whole or in-partwithin special designed hardware or firmware. Not all calculations,analysis, and/or optimization require the use of computer systems,though any of the above-described methods, calculations, processes, oranalyses may be facilitated through the use of computers. Further, insome embodiments, process blocks described herein may be altered,rearranged, combined, and/or omitted.

Cognitive Radio and Dynamic Spectrum Access

FIG. 1 is a diagram illustrating the relationship between the primaryusers of a radio spectrum and the secondary users of a radio spectrum.Primary users 105 and 106 of a radio spectrum are usually licensed usersof a radio spectrum, such as the spectrums-regulated by the FederalCommunications Commission (FCC). Examples of currently regulatedspectrum include, but are not limited to, AM/FM radio and televisionbroadcast spectrums. Many primary users do not take into account whetherother users of the same spectrum are transmitting before making adecision to transmit. Instead, these types of primary users carry onwith transmission of information on various radio spectrums withoutregard to any other type of users. However, primary users frequently donot constantly transmit on all channels of their regulated radiospectrum either. Thus, there is some idle time when a primary user isnot transmitting.

Because of this idle time, it is possible for another set of users toaccess the licensed radio spectrum when a primary user is not doing so.Secondary users 101 and 102, otherwise known as cognitive radios thatperform dynamic spectrum access, may transmit using the same radiospectrum as the primary user for their own purposes. For example,secondary user 101 may be a laptop computer that is wirelesslycommunicating with a network access point 102. These secondary users mayonly transmit wirelessly during primary user idle times, otherwise thesecondary users' transmission will interfere with the primary user'ssignal.

Thus, it is advantageous that a secondary user detect, or have a thirdparty detect, when the primary user is transmitting, also known as beingin the ON state, and when the primary user is not transmitting, alsoknown as being in the OFF state. This detection is often referred to bya skilled artisan as spectrum sensing. The secondary user makes asensing observation by receiving electromagnetic signals in one or moreantennas, in one or more locations, for one or more frequency spectrums,repeated over time. These signals are then interpreted as a sensingobservation in the ON or OFF state.

As mentioned in the related art section, energy detection is onepossible method of determining whether a primary user is in an ON stateor an OFF state.

However, energy detection has a number of disadvantages. Energydetection is imperfect because of noise, interference and fading in thespectrum. Some types of interference can cause an energy detector toindicate the ON state when the primary user is actually in the OFFstate. Such an indication that the spectrum is occupied can cause thesecondary user to not transmit during this period, even though theprimary user is not actually accessing the shared radio spectrum.Similarly, interference could cause an energy detector to falsely reportthat the primary user is in the OFF state, when in reality thetraditional user is transmitting and in the ON state. This could causethe secondary radio user to transmit at the same time as the primaryuser, causing interference with the primary user's transmission.

Another disadvantage of energy detection is that it does not accuratelypredict a primary user's idle channel state at lowsignal-to-noise-ratios (SNR). To compensate, an energy detector mayincrease the time period to listen for the primary user, and take anenergy detection average into account over that period of time beforemaking a sensing decision. However, energy detection systems havedifficulty distinguishing between interference and a primary user'sstate transition occurring during this time period from ON to OFF, orOFF to ON. In fact, the channel dwell time, defined as the averagelength of time that a primary user uses the spectrum, imposes a limit tothe optimal window length before detection performance degrades.Further, there is a minimum SNR below which energy detection fails todetect a signal at all.

Coherent detection differs from energy detection in that the secondaryuser has more knowledge of the structure of the primary user's signal.Thus a secondary user can narrow its focus and zero in on specificbehavior of the primary user to determine when a primary user istransmitting. However, when a frequency or timing mismatch occurs, acoherent detector is more fragile and prone to sensing errors due tonoise and interference.

Pilot detection also has many of the same disadvantages as energydetection and coherent detection. A secondary user configured for pilotdetection looks for a specific pilot signal transmitted by a primaryuser. One disadvantage of pilot detection is that the primary user mustbe specifically configured to carry such a signal. In application, manyof the desired uses for cognitive radio are in situations where primaryuser networks are already in place and cannot be altered or upgraded tocarry a pilot signal. Consequently, this detection scheme is of limiteduse.

Thus, there is a need for a better sensing method to detect whether aprimary user is idle in a cognitive radio network such as the onedepicted in FIG. 1. The sequence and state detection shown in thisdisclosure minimizes or eliminates these problems. Sequence detectionperforms better at low SNRs, exploits primary user state memory,increases accuracy of state and sequence determination, and allows fordisparate treatment of the risk created by missed detections and falsealarms.

Sensing System

FIG. 2A is a block diagram depicting one embodiment of a computerhardware system configured to run software for implementing one or moreembodiments of the sensing systems and methods described herein.

In some embodiments, the systems and described herein take the form of acomputing system 200 shown in FIG. 2A, which is a block diagram of oneembodiment of a computing system (which can be a fixed system or mobiledevice) that is in communication with one or more other secondary usercomputing systems 270 and/or secondary user networks 260. The computingsystem 200 may be used to implement one or more of the systems, models,and methods described herein. In addition, in one embodiment, thecomputing system 200 may be configured to sense primary user 280transmissions and make a determination whether any primary user 280 isin an ON state and/or determine the sequence of the recent ON/OFFstates. While FIG. 2A illustrates one embodiment of a computing system200, it is recognized that the functionality provided for in thecomponents and modules of computing system 200 may be combined intofewer components and modules or further separated into additionalcomponents and modules.

Sensing System Components

In some embodiments, the processes, systems, and methods illustratedherein may be embodied in part or in whole in software that is runningon a computing device. The functionality provided for in the componentsand modules of the computing device may comprise one or more componentsand/or modules. For example, the computing device may comprise multiplecentral processing units (CPUs) and storage devices, such as may beimplemented in an array of computers, operating locally orgeographically dispersed and communicating over a network. In someembodiments the computers may operate in parallel, each performing thesame tasks and sharing information. In some embodiments the computersmay be executing different software modules implementing differentportions of the disclosure described herein and sharing information.Alternatively, the system may operate with a combination of parallel andspecialized components.

In some embodiments, the system 200 comprises wireless access module 230and I/O Devices and Interfaces module 210 configured to carry out thefunctions, methods, and/or processes described herein. The wirelessaccess module 230 is executed on the computing system 200 by a centralprocessing unit 205. Alternatively, the wireless access module may beexecuted using specialized processors (not shown). The computing system200 further comprises a memory 250, such as random access memory (“RAM”)for temporary storage of information and/or a read only memory (“ROM”)for permanent storage of information, and a storage device 220, such asa hard drive, diskette, or optical media storage device. Alternatively,the storage device need not be physically attached to the computingsystem, and may instead be in communication over a network with thecomputing system, such as in the case of Network Attached Storage(“NAS”) or Storage Area Network (“SAN”). There may be more than onestorage device retrieving, storing, and holding data for the system.Typically, the modules of the computing system 200 are connected to thecomputer using a standards based bus system. In different embodiments,the standards based bus system could be Peripheral ComponentInterconnect (PCI), Microchannel, SCSI, Industrial Standard Architecture(ISA) and Extended ISA (EISA) architectures, for example.

The computing system 200 comprises one or more commonly availableinput/output (I/O) devices and interfaces 210, such as a keyboard,mouse, touchpad, printer, display or network adapter. In one embodiment,the I/O devices and interfaces 210 comprise one or more display devices,such as a monitor, that allows the visual presentation of data to auser. In FIG. 2A, the I/O devices and interfaces 210 may provide acommunications interface to various external devices, radio spectrums,or channels.

Computing System Device/Operating System

The computing system 200 may run on a variety of computing devices, suchas, for example, a server, a Windows server, a Unix server, a personalcomputer, a mainframe computer, a laptop computer, a cell phone, apersonal digital assistant, a mobile device, a kiosk, an audio player, anetwork gateway device, an embedded system and so forth. The computingsystem 200 is generally controlled and coordinated by operating systemsoftware, such as z/OS, OS X, Windows 95, Windows 98, Windows NT,Windows 2000, Windows XP, Windows Vista, Linux, BSD, SunOS, Solaris, VXWorks, QNX, RTLinux, Windows CE, OSE or other compatible operatingsystems, including operating systems for embedded devices. In otherembodiments, the computing system 200 may be controlled by a proprietaryoperating system, or purely made of hardware components. Operatingsystems control and schedule computer processes for execution, performmemory management, provide file system, networking, and I/O services,and provide a user interface, such as a graphical user interface(“GUI”), among other things.

Network

In the embodiment of FIG. 2, the computing system 200 is coupled to asecondary user network 260, such as one or more of a LAN, WAN, or theInternet, for example, via a wireless communication link. The network260 communicates with various computing devices and/or other electronicdevices via wired or wireless communication links. In FIG. 2, thenetwork 260 is communicating with one or more secondary user computingsystems 270 and using the same radio spectrum as primary users 280during mostly idle periods. Although using the same radio spectrum asthe primary users 280 and performing sensing and sequence detection asdescribed herein, in some embodiments the secondary user 200 maycommunicate with the wireless network and other secondary user devicesor systems 270 by running traditional layer 2 protocols under the OSImodel on top of its use of the cognitive radio spectrum so as tomultiplex secondary user use and provide for channel access control. Forexample, in some embodiments, once an OFF state sensing decision hasbeen made and sent to a sensing decision consumer discussed herein, thatconsumer may communicate with other secondary users 270 to determinewhich secondary user node will have access to the spectrum and how theprimary user 280 idle spectrum should be utilized. Examples of channelaccess control mechanisms to be used separately or in combination areFDMA, OFDMA, TDMA, CDMA, SDMA, ALOHA, CSMA/CA, Token Ring, CSMA, schemesused in GSM, and their variations among many others. Duplexing may alsooccur using any time division or frequency division scheme. In someembodiments, the media access control and duplexing mechanisms will beconfigured to be executed in the same module as all or portions of thesensing and sequence detection module(s), or execute separately inanother module, or in another layer of computer abstraction.

Wireless Access Module

In some embodiments, the wireless access module 230 may be split intovarious component submodules. Turning to FIG. 2B, one embodiment maycomprise of a Wireless Learning Module 231, a Wireless Sensing Module232, and a Wireless Transmission Module 233. The all or a portion of thewireless access module may further be a part of the I/O devices module210, or vice versa. In one embodiment, the wireless access module 230may learn primary user spectrum user parameters in the Wireless Learningmodule 231, make a sensing decision in the Wireless Sensing Module 232,and make a transmission decision in the Wireless Transmission Module233.

The wireless access module 230 may also have less submodules thanpictured in FIG. 2B. For example, the wireless learning module 231 maynot be necessary when primary user spectrum parameters are already knownor not determined during run-time. Additionally, the wirelesstransmission module 233 may not be necessary when the system with thewireless access module is merely tracking primary user state andreporting to a sensing decision consumer that is in a separate system.

Focusing on FIG. 2C, in some embodiments Wireless Access Module 230comprises a combination of submodule(s) implementing all or portions ofthe Wireless Sensing Module 232 and Wireless Transmission Module 233.The wireless access module 230 may run a process using the diagramedsequence. Upon startup of the routine 291, the primary user spectrum useparameters, described herein, are read as input 292. Additionally,during this stage, or any other appropriate stage before use, the costfactor(s), described herein, may be read as input. Next, the processobserves and senses the primary user 293. During this portion, based inpart on the primary user spectrum use parameters, and past and/orpresent sensing observations of the primary user's ON or OFF state, thesystem 200 makes a sensing decision. It does so using methods andtechniques described herein. Based on this process, the sense primaryuser block 293 outputs a potential primary user state, state sequencesignal, or any variety of sequences, states, calculated probabilities,and/or calculated risks related to the sensing decision to a sensingdecision consumer.

A sensing decision consumer is any process or storage device thataccepts one or more outputs of the sense primary user block 293, suchoutputs being one or more potential primary user states, including asequence of primary user states. In some embodiments, a potential userstate is a representation of either an ON or OFF signal. A potentialprimary user state may correspond to any transmission mode of theprimary users of the spectrum. Furthermore, the sense primary user block293 could output a potential user state or state sequence for multiplechannels, or multiple time periods, resulting in multiple outputs.Moreover, the output to a sensing decision consumer may encompasscontextual information about the sensing analysis made by the senseprimary user block 293. This contextual information is related to thesensing analysis performed. For example, instead of outputting a chosenstate or state sequence, the output may comprise one or moreprobabilities of a state occurring during an observation time period orobservation time period sequence. Alternatively, or in combination,primary user block 293 may also output the risk or weighted risk of astate, sequence, or a series of states in a sequence. By providingcontext information to the sensing decision consumer, any module(s)making a transmission decision may do so more accurately at the cost ofpotential delay and complexity. Together, the possible output set of asingle state, multiple states, a state sequence, multiple statesequences, calculated risks and/or state probabilities comprise thepossible options for a primary user state estimate. The various forms ofthe primary user state estimate can be used by the sensing decisionconsumer to make a transmission decision and/or study spectrum behavior.

For example, a sensing decision consumer can be a storage device,connected directly or through a network, that stores the output fromblock 293. In some embodiments, another process would read from thesensing decision consumer and make a secondary user transmissiondecision as shown in block 294. Another example of a sensing decisionconsumer is a process executing on the same computer device, or anothercomputing device in communication over a network or bus with thecomputer or computers executing block 293. This process would accept theoutput(s) from the sense primary user block 293 and may make a secondarytransmission decision as shown in block 294. In some embodiments, asensing decision consumer does not make a secondary transmissiondecision, and instead stores the sensing outcome(s) for later study oranalysis. Under this embodiment, or any embodiment where a secondaryuser transmission decision is not made, block 293 may be repeatedlyexecuted without moving on to block 294.

Any secondary user transmission decision made in block 294 is based, atleast in part, on the output from the sense primary user block 293, andmay also take into account higher level, OSI layer 2, channel access andduplexing schemes mentioned herein. Although the sensing block in 293may output that the primary user state is OFF, that does not mean thatblock 294 must decide that the secondary user must transmit. Instead,the sensing mechanism can be but one input in the decision in block 294,and the decision may be made taking into account many additional factorsknown to a skilled artisan.

In some embodiments, once the secondary user transmission decision hasbeen made, the process in FIG. 2C repeats with another sensing block293. This allows the secondary user to constantly sense and make atransmission decision during a specific time period. In someembodiments, block 293 and block 294 are not strictly executed one afteranother, and are instead run in parallel, or partially in parallel andpartially in a serial process. For example, in one such embodiment, eachoutput from the sense primary user block is input into a future block294, and block 293 does not wait for any transmission decision in 294 tobe made before sensing the spectrum once again.

In some embodiments illustrated by FIG. 2D, the overall process performssimilarly to the process in FIG. 2C, except with a slight change. InFIG. 2D with a process operating in a serial manner, after the secondaryuser transmission decision is made in block 298 (corresponding to asimilar decision in 294), the process returns to block 296 where thewireless access module 230 continues to update the primary spectrum useparameters based on observed behavior of the primary user spectrum.Thus, in some embodiments, the primary user spectrum use parameters canchange, and are read in to the sense primary user block multiple timesrather than once. Similar to the blocks in FIG. 2C, blocks 296, 297, and298 may all be executed serially as illustrated, or in a parallel orpartially parallel manner.

Overall, for the high level function of the wireless access module 230,whether implemented as a single module on a single computer system orembedded device, or separate or partially separate module on the samecomputer system, or as a network of computer systems or embeddeddevices, three processes can occur: reading and/or updating the spectrumuse parameters, sensing the primary user and/or outputting one or morepotential primary user states based on sensing observations, primaryspectrum use parameters, and/or (in some embodiments) cost factors,and/or making a secondary transmission decision based on the outputs.

Sensing, Hidden Markov Models and Sequence Detection

In the sensing block discussed herein, sequence detection may beperformed to determine the sensing block's output to a sensing decisionconsumer. Sequence detection may be implemented by the wireless accessmodule by using a hidden Markov model of any order. Detecting sequences,as opposed to detecting only a single ON or OFF state considered inisolation, can reduce interference to primary and secondary users.

FIG. 3 illustrates a first order primary user state hidden Markov modelas used in some embodiments. As described above, a skilled artisan willrecognize that, a primary user has at least two potential states duringany observed time period: when one or more primary users aretransmitting, called the ON state 302 (often associated with a 1), orwhen all primary users are not transmitting, called the OFF state 301(often associated with a 0). During the next measured time period, thereis a probability that the state will either stay the same, and acomplimentary probability that the state will change. For example, ifthe current state is OFF 301, there is a probability associated withstate transition 314 that the next state will is ON 302. Similarly,there is a probability associated with station transition 311 that thenext state will be another OFF state. The probabilities associated with311 and 314 in this embodiment sum to 1. Likewise, the probabilities,given an ON state, transitions 312 and 313, sum to 1. This gives fourvalues for a state transition probability matrix: OFF to OFF denotedp₀₀, OFF to ON denoted p₀₁, ON to OFF denoted p₁₀, and ON to ON denotedp₁₁. Further, to begin the model, the wireless access module may requirethe probability of starting in each state, which also sums to 1. Theprobability of starting in state OFF is called π₀, and the probabilityof starting in state ON is called π₁.

However, because the secondary user experiences interference inreceiving any signals from the one or more primary users, the secondaryuser may not know the true state that the primary user is in. Instead,the secondary user may only make a sensing observation for each timeperiod about the primary user.

A sensing observation during any time period may be made using anyobservation sensing scheme, including energy, coherent and pilotdetection. There are at least two potential observations for each timeperiod: Sensing a Primary Transmission 304, and Sensing no PrimaryTransmission 303. Given the current primary user state, there is aprobability associated with each given observation. For example, if theprimary transmission is ON 302, there is a probability 321 that theobserved state is also ON 303, and a probability 323 that the observedstate is OFF 304. These two probabilities sum to 1. Likewise, theprobabilities for observing an ON or OFF state, 320 and 322, given anOFF state also sum to 1.

Given all of the probabilities above, called the primary user spectrumuse parameters collectively, and given a set of observationscorresponding to a set of consecutive time periods (i.e. a sequence ofobservations), one can determine the probability of being in eachpotential state during each time period in the set of observations. Theprimary user spectrum use parameters required by some embodiments neednot necessarily be the probabilities discussed above represented infloating point form. In some embodiments, the parameters couldpotentially be probability density functions, or cumulative distributionfunctions, or primary use channel ON/OFF dwell times. The probabilitiesmentioned above can be determined using these parameters. Further, asdescribed above, the primary user spectrum use parameters may be learnedonline or on the fly, and be altered during the execution of thewireless access module 230.

One or more primary user spectrum use parameters, together a vector ofparameters, may be stored in one or more data storage devices accessibleby the wireless access module, as disclosed herein.

Sensing Errors

FIG. 4 is a timing diagram illustrating the sensing errors of falsealarm and missed detection. A secondary user may attempt to transmitduring observed idle periods of transmission. However, because of theinterference discussed above, and the uncertainty of the primary user'sstate as known to the secondary user, there may be occasional errors.

A false alarm error 410 occurs if the secondary user determines that theprimary user is still in the transmission ON state when in reality theprimary user is in the transmission OFF state. The probability of afalse alarm is equal to the probability of the observation of an ONstate when the true transmission is an OFF state, 322. In FIG. 4, theprimary user 402 was transmitting during period 404. The secondary user401 failed to detect that the primary user 402 had stopped transmitting,thus during the false alarm period 410, the secondary user did nottransmit. Eventually, the secondary user makes another observation andrealizes that the primary user is not transmitting, and begins totransmit 405. A false alarm error decreases the secondary user's 401transmission throughput. Had there been no error, the secondary user 401would have had more time and/or spectrum to transmit. The primary useris unaffected.

A missed detection error 420 occurs if the secondary user determinesthat the primary user is still in the transmission OFF state when inreality the primary user is in the transmission ON state. Theprobability of a missed detection is equal to the probability of theobservation of an ON state when the true transmission is an OFF state,323. In FIG. 4, the primary user 402 was transmitting during period 406.The secondary user 401 detected no transmission starting at the timeperiod bounded by 420, thus during the missed detection period 420, thesecondary user began transmitting 407. A missed detection error mayinhibit both the primary user's throughput and the secondary user'sthroughput, because both the primary user's signals and the secondaryuser's signals may experience interference. Thus, unlike a false alarm,a missed detection may negatively affect the primary user.

Risk Analysis

Because the errors detailed above may increase interference with theprimary user and reduce primary user and secondary user throughput, itis often desirable to minimize these errors.

Some embodiments minimize the errors by employing a risk analysis. Givena sequence of observations of length T, there exists 2^(T) possiblesequences of the true primary state sequence. Let S denote the truestate sequence, and Y the primary user measurement observation sequence,and Ŝ the sensing decision sequence. The risk value of one sequence ofthe 2^(T) sequences is the expected value of the cost of declaring thatsequence to be the sensing decision, give the current sequential set ofobservations over time. This function can be formulated as the sum ofall costs of declaring sequence i to be used for sensing, given that thetrue sequence is sequence j, multiplied by the probability of sequence jgiven the current sequence of observations made, for all 2^(T) possiblej sequences. In other words,

${{R\left( {{\underset{\_}{s}}^{(i)}\underset{\_}{Y}} \right)} = {\sum\limits_{j = 1}^{2^{T}}\; {{C\left( {{\underset{\_}{s}}^{(i)},{\underset{\_}{s}}^{(j)}} \right)}*{P\left( {{\underset{\_}{s}}^{(j)}\underset{\_}{Y}} \right)}}}},$

where R(s ^((i))|Y) is the risk function of the declared sequence igiven the current observations, C(s ^((i)),s ^((j))) is the cost ofdeclaring sequence i given the real sequence is sequence j, and P(s^((j))|Y) is the probability of sequence j occurring given the currentobservations. Other functions are possible.

In some embodiments, given the calculated risks for all possibledeclared sequences i, the wireless access module selects the sequencewith the lowest possible risk. In other words, it finds the minimum risksequence Ŝ where

$\hat{\underset{\_}{S}}\underset{{\underset{\_}{s}}^{(i)},{1 \leq i \leq 2^{T}}}{argmin}{{R\left( {{\underset{\_}{s}}^{(i)}\underset{\_}{Y}} \right)}.}$

Sequence Determination

By assigning a cost value of 0 if declared sequence i is the realsequence, i.e. s ^((i))=s ^((j)), and a cost value of 1 if declaredsequence i is not the real sequence, i.e. s ^((i))≠s ^((j)), then thisprocess of minimizing the risk function can be simplified by using theViterbi algorithm. The Viterbi algorithm finds the sequence of hiddenstates in a hidden Markov model with the maximum conditionalprobability. For a given set of primary user observations, thisimplementation by the wireless access module can find the primary userstate sequence with the highest conditional probability. By finding thesequence Ŝ ^((j)) with the maximum a posteriori probability of being thereal state sequence, i.e. the sequence MAP estimate, the risk functionR(s ^((i))|Y) will be minimized compared to the risk functions of allother possible sequences because this sequence will have the leastassociated cost. Because its P(s ^((j))|Y) will be the largestprobability when j=i and the associated cost will equal 0, the sum ofcosts when j≠i will be minimized. Thus, the Viterbi implementation willfind the minimum risk sequence Ŝ under these cost constraints.

A skilled artisan will recognize that the Viterbi implementation can becalculated by the wireless access module using recursion. The Viterbiimplementation finds the most probable path, δ_(t)(k), ending in state kat time t given the whole sequence of primary state observations. Insome embodiments, for a two state ON (1) and OFF (0) primary user stateobservation sequence, the recurrence equation

${{\delta_{t}(k)} = {\max\limits_{l \in {\{{0,1}\}}}{\left\lbrack {{\delta_{t - 1}(k)}p_{lk}} \right\rbrack {f_{Y_{t}S_{t}}\left( {y_{t}k} \right)}}}},$

with initialization δ₁(i)=π_(i)f_(Y) ₁ _(|S) ₁ (y₁|k), where π_(k) iseither the primary user spectrum parameter π₀ or π₁, p_(lk) correspondsto the probabilities p₀₀, p₁₀, p₁₀ and p₁₁, and f_(Y) _(t) _(|S) _(t)(y_(t)|k) is the probability density function of the observations instate k coinciding with 320, 321, 322 and 323 in FIG. 3 as discussedherein. The argument ψ_(t)(k), where

${{\psi_{t}(k)} = {\underset{l \in {\{{0,1}\}}}{argmax}{\delta_{t - 1}(l)}p_{lk}}},{2 \leq t \leq T},$

which maximizes the above recurrence equation should be tracked, so thatat the end of the calculations, the highest probability endpoint ischosen and the highest probability path, Ŝ, is backtracked using

${{\hat{S}}_{T} = {\underset{k \in {\{{0,1}\}}}{argmax}{\delta_{T}(k)}}},$

and Ŝ_(t)=ψ_(t+1)(Ŝ_(t+1)) for t=T−1 to 1. This is but one exemplaryimplementation of the Viterbi algorithm, and a skilled artisan willrecognize other ways of implementing the Viterbi algorithm.

One drawback of using the Viterbi implementation to detect a sequencewith the minimum risk is that the cost of the risk for a misseddetection is equal to the cost of the risk for false alarm. Furthermore,a sequence with multiple errors carries the same risk as a sequence witha single error. Thus, the implementation makes no distinction betweenmultiple errors or different kinds of errors.

Separate Missed Detection and False Alarm Costs

Instead of using a 0 and 1 cost for entire sequences above, in someembodiments, the wireless access module may distinguish individualdecisions in a sequence of decisions, and distinguish between the costof a false alarm and missed detection, by using an additive costformulation. The cost of declaring sequence s ^((i)), when the truesequence was s ^((j)), can be set equal to the sum of the costs ofdeclaring state k in sequence s ^((i)) when the real state is state l insequence s ^((j)) at any time instant. In other words, in someembodiments that isolate individual decisions and/or distinguish costsfor false alarms and missed detections, C(s ^((i)),s ^((j))) is nowequal to

$\sum\limits_{t = 1}^{T}\; {C\left( {s_{t}^{(i)},s_{t}^{(j)}} \right)}$

where s_(t) ^((i)) is the state of the sequence s ^((i)) at time t. Todo this comparison, some embodiments may use a state risk function,R_(t)(k|Y), that is the risk of declaring state k at time instant t,given the observation sequence Y, to calculate the risk function for asequence, R(s ^((i))|Y).

The state risk function R_(t)(k|Y) can be formulated as

${{R_{t}\left( {k\underset{\_}{Y}} \right)} = {\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{P\left( {S_{t} = {l\underset{\_}{Y}}} \right)}}}},$

where can k equal 0 or 1, as noted above, as it is the sum of the costsof transition for the state multiplied by the probability of that stateoccurring given the sequence. Relating the sequence risk function to thestate risk function, the sequence risk function is equal to the sum ofall the individual state risk functions, i.e.

${{R\left( {{\underset{\_}{s}}^{(i)}\underset{\_}{Y}} \right)} = {\sum\limits_{t = 1}^{T}\; {R_{t}\left( {s_{t}^{(i)}\underset{\_}{Y}} \right)}}},$

where s_(t) ^((i)) is either ON (1), or OFF (0). Because this sequencerisk function is additive when the state risk function is additive, someembodiments of the wireless access module may use a simplified versionof the state sequence equation that determines each portion of theminimum risk sequence state by state, i.e.

${\hat{S}}_{t} = {\underset{k \in {\{{0,1}\}}}{argmin}{\left\{ {R_{t}\left( {{k\underset{\_}{Y}} = \underset{\_}{y}} \right)} \right\}.}}$

To determine Ŝ using the state risk function,

${{R_{t}\left( {k\underset{\_}{Y}} \right)} = {\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{P\left( {S_{t} = {l\underset{\_}{Y}}} \right)}}}},$

the wireless access module may use the forward-backward algorithm. Thewireless module's application of the forward backward algorithm cancomprise three blocks that are not necessarily computed in the orderlisted, and portions may be done serially or in parallel: computeforward probabilities for each time instant which is the likelihood ofearlier observations given current state, compute backward probabilitiesfor each time instant which is the likelihood of later observationsgiven current state, and compute the a posterior probability of eachstate for each time instant based on the forward and backwardprobabilities. The posterior probabilities are then used to detect thesequence with the minimum risk given appropriate costs.

Forward-Backward Example

The following example of the wireless access module's forward-backwardimplementation is meant as an illustration only. The various datastructures and implementation actually used can vary widely. Turning toFIG. 5A, there are 5 observations 550. In set 550, from left to right,the observation sequence is OFF, OFF, ON, OFF, OFF corresponding to theset of observations {0,0,1,0,0}.

To calculate forward probabilities, we use α_(t)(k)=f _(Y) _(t) _(|S)_(t) (y _(t)|k), where α_(t)(k) corresponds to the probability densityfunction of the partial observation sequence y ^(t)=(y₁, y₂, y₃ . . .y_(t)), which can be solved recursively using α₁(k)=π_(k)f_(Y) ₁ _(S) ₁(y₁|k) and

${\alpha_{t}(k)} = {\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{t - 1}(l)}p_{kl}}} \right){{f_{Y_{t}S_{t}}\left( {y_{t}k} \right)}.}}$

Thus, given primary user spectrum use parameters p₀₀=0.7, p₀₁=0.3,p₁₀=0.3, p₁₁=0.7, π₀=0.5, π₁=0.5, o₀₀=0.9, o₁₀=0.1, o₀₁=0.2, and o₁₁=0.8(where o_(kl) corresponds to the probability of observing state k giventhe true state is state 1, corresponding to events depicted in 320-323),the following forward state probabilities will be calculated as follows,where c is a normalization constant:

α₀(0) = π₀ = 0.5, α₀(1) = π₁ = 0.5 $\begin{matrix}{{\alpha_{1}(0)} = {c_{1}\pi_{0}{f_{Y_{1}S_{1}}\left( {y_{1}0} \right)}}} \\{= {0.5*\left( {{0.9*0.7} + {0.9*0.3}} \right)c_{1}}} \\{= {0.45\; c_{1}}} \\{= 0.8182}\end{matrix}$ $\begin{matrix}{{\alpha_{1}(1)} = {c_{1}\pi_{1}{f_{Y_{1}S_{1}}\left( {y_{1}1} \right)}}} \\{= {0.5*\left( {{0.2*0.3} + {0.2*0.7}} \right)c_{1}}} \\{= {0.1\; c_{1}}} \\{= 0.1818}\end{matrix}$ $\begin{matrix}{{\alpha_{2}(0)} = {{c_{2}\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{1}(l)}p_{0\; l}}} \right)}{f_{Y_{2}S_{2}}\left( {y_{2}0} \right)}}} \\{= {\left( {\left( {0.8182*{.7}} \right) + \left( {0.1818*0.3} \right)} \right)*(0.9)c_{2}}} \\{= 0.8834}\end{matrix}$ $\begin{matrix}{{\alpha_{2}(1)} = {{c_{2}\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{1}(l)}p_{1\; l}}} \right)}{f_{Y_{2}S_{2}}\left( {y_{2}1} \right)}}} \\{= {\left( {\left( {0.8182*{.3}} \right) + \left( {0.1818*0.7} \right)} \right)*(0.2)c_{2}}} \\{= 0.1166}\end{matrix}$ $\begin{matrix}{{\alpha_{3}(0)} = {{c_{3}\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{2}(l)}p_{0\; l}}} \right)}{f_{Y_{3}S_{3}}\left( {y_{3}0} \right)}}} \\{= {\left( {\left( {0.8834*{.7}} \right) + \left( {0.1166*0.3} \right)} \right)*(0.1)c_{3}}} \\{= 0.1907}\end{matrix}$ $\begin{matrix}{{\alpha_{3}(1)} = {{c_{3}\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{2}(l)}p_{1\; l}}} \right)}{f_{Y_{3}S_{3}}\left( {y_{3}1} \right)}}} \\{= {\left( {\left( {0.8834*{.3}} \right) + \left( {0.1166*0.7} \right)} \right)*(0.8)c_{3}}} \\{= 0.8093}\end{matrix}$ $\begin{matrix}{{\alpha_{4}(0)} = {{c_{4}\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{3}(l)}p_{0\; l}}} \right)}{f_{Y_{4}S_{4}}\left( {y_{4}0} \right)}}} \\{= {\left( {\left( {0.1907*{.7}} \right) + \left( {0.8093*0.3} \right)} \right)*(0.9)c_{4}}} \\{= 0.7308}\end{matrix}$ $\begin{matrix}{{\alpha_{4}(1)} = {{c_{4}\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{3}(l)}p_{1\; l}}} \right)}{f_{Y_{4}S_{4}}\left( {y_{4}1} \right)}}} \\{= {\left( {\left( {0.1907*{.3}} \right) + \left( {0.8093*0.7} \right)} \right)*(0.2)c_{44}}} \\{= 0.2692}\end{matrix}$ $\begin{matrix}{{\alpha_{5}(0)} = {{c_{5}\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{4}(l)}p_{0\; l}}} \right)}{f_{Y_{5}S_{5}}\left( {y_{5}0} \right)}}} \\{= {\left( {\left( {0.7308*{.7}} \right) + \left( {0.2692*0.3} \right)} \right)*(0.9)c_{5}}} \\{= 0.8673}\end{matrix}$ $\begin{matrix}{{\alpha_{5}(1)} = {{c_{5}\left( {\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{4}(l)}p_{1\; l}}} \right)}{f_{Y_{5}S_{5}}\left( {y_{5}1} \right)}}} \\{= {\left( {\left( {0.7308*{.3}} \right) + \left( {0.2692*0.7} \right)} \right)*(0.2)c_{5}}} \\{= 0.1327}\end{matrix}$

To calculate backward probabilities, some embodiments of the wirelessaccess module uses β_(t)(k) corresponding to the probability densityfunction of the partial observation sequence from y_(t+1) to the endproduced by all state sequences that start at the ith state. In otherwords, β_(t)(k)=f_(Y) _(t+1) _(, . . . Y) _(T) _(|S) _(t) (y_(t+1), . .. |k). Similar to the forward probabilities, the wireless access modulemay solve this recursively, using β_(T)(k)=1, and

${{\beta_{t}(k)} = {\sum\limits_{l \in {\{{0,1}\}}}{p_{kl}{f_{Y_{t + 1}S_{t + 1}}\left( {y_{t + 1}l} \right)}{\beta_{t + 1}(l)}}}},$

where k can be 0 or 1. Thus, for this example, using a normalizationconstant d, it yields:

β₅(0) = 1 β₅(1) = 1 $\begin{matrix}{{\beta_{4}(0)} = {d_{4}{\sum\limits_{l \in {\{{0,1}\}}}{p_{0\; l}{f_{Y_{5}S_{5}}\left( {y_{5}l} \right)}{\beta_{5}(l)}}}}} \\{= {d_{4}\left( {{0.7*0.9*1} + {0.3*0.2*1}} \right)}} \\{= {0.69\; d_{4}}} \\{= 0.6273}\end{matrix}$ $\begin{matrix}{{\beta_{4}(1)} = {d_{4}{\sum\limits_{l \in {\{{0,1}\}}}{p_{1\; l}{f_{Y_{5}S_{5}}\left( {y_{5}l} \right)}{\beta_{5}(l)}}}}} \\{= {d_{4}\left( {{0.3*0.9*1} + {0.7*0.2*1}} \right)}} \\{= {0.41\; d_{4}}} \\{= 0.3727}\end{matrix}$ $\begin{matrix}{{\beta_{3}(0)} = {d_{3}{\sum\limits_{l \in {\{{0,1}\}}}{p_{0\; l}{f_{Y_{4}S_{4}}\left( {y_{4}l} \right)}{\beta_{4}(l)}}}}} \\{= {d_{3}\left( {{0.7*0.9*0.6273} + {0.3*0.2*0.3727}} \right)}} \\{= 0.6533}\end{matrix}$ $\begin{matrix}{{\beta_{3}(1)} = {d_{3}{\sum\limits_{l \in {\{{0,1}\}}}{p_{1\; l}{f_{Y_{4}S_{4}}\left( {y_{4}l} \right)}{\beta_{4}(l)}}}}} \\{= {d_{3}\left( {{0.3*0.9*0.6273} + {0.7*0.2*0.3727}} \right)}} \\{= 0.3467}\end{matrix}$ $\begin{matrix}{{\beta_{2}(0)} = {d_{2}{\sum\limits_{l \in {\{{0,1}\}}}{p_{0\; l}{f_{Y_{3}S_{3}}\left( {y_{3}l} \right)}{\beta_{3}(l)}}}}} \\{= {d_{2}\left( {{0.7*0.1*0.6533} + {0.3*0.8*0.3467}} \right)}} \\{= 0.3763}\end{matrix}$ $\begin{matrix}{{\beta_{2}(1)} = {d_{2}{\sum\limits_{l \in {\{{0,1}\}}}{p_{1\; l}{f_{Y_{3}S_{3}}\left( {y_{3}l} \right)}{\beta_{3}(l)}}}}} \\{= {d_{2}\left( {{0.3*0.1*0.6533} + {0.7*0.8*0.3467}} \right)}} \\{= 0.6237}\end{matrix}$ $\begin{matrix}{{\beta_{1}(0)} = {d_{1}{\sum\limits_{l \in {\{{0,1}\}}}{p_{0\; l}{f_{Y_{2}S_{2}}\left( {y_{2}l} \right)}{\beta_{2}(l)}}}}} \\{= {d_{1}\left( {{0.7*0.9*0.3763} + {0.3*0.2*0.6237}} \right)}} \\{= 0.5923}\end{matrix}$ $\begin{matrix}{{\beta_{1}(1)} = {d_{1}{\sum\limits_{l \in {\{{0,1}\}}}{p_{1\; l}{f_{Y_{2}S_{2}}\left( {y_{2}l} \right)}{\beta_{2}(l)}}}}} \\{= {d_{1}\left( {{0.3*0.9*0.3763} + {0.7*0.2*0.6237}} \right)}} \\{= 0.4077}\end{matrix}$ $\begin{matrix}{{\beta_{0}(0)} = {d_{0}{\sum\limits_{l \in {\{{0,1}\}}}{p_{0\; l}{f_{Y_{1}S_{1}}\left( {y_{1}l} \right)}{\beta_{1}(l)}}}}} \\{= {d_{0}\left( {{0.7*0.9*0.5923} + {0.3*0.2*0.4077}} \right)}} \\{= 0.6469}\end{matrix}$ $\begin{matrix}{{\beta_{0}(1)} = {d_{0}{\sum\limits_{l \in {\{{0,1}\}}}{p_{1\; l}{f_{Y_{1}S_{1}}\left( {y_{1}l} \right)}{\beta_{1}(l)}}}}} \\{= {d_{0}\left( {{0.3*0.9*0.5923} + {0.7*0.2*0.4077}} \right)}} \\{= 0.3531}\end{matrix}$

To calculate the posterior probabilities, some embodiments of thewireless access module uses λ_(t)(k), corresponding to

${\lambda_{t}(k)} = \frac{{\alpha_{t}(k)}{\beta_{t}(k)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{t}(l)}{\beta_{t}(l)}}}$

which is the normalized multiplication of forward and backwardprobabilities corresponding to an observation time period and a specificstate k. Thus, for this example, yields:

$\begin{matrix}{{\lambda_{0}(0)} = \frac{{\alpha_{0}(0)}{\beta_{0}(0)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{0}(l)}{\beta_{0}(l)}}}} \\{= {\left( {0.5*0.6469} \right)/\left( {{0.5*0.6469} + {0.5*0.3531}} \right)}} \\{= 0.6469}\end{matrix}$ $\begin{matrix}{{\lambda_{0}(1)} = \frac{{\alpha_{0}(1)}{\beta_{0}(1)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{0}(l)}{\beta_{0}(l)}}}} \\{= {\left( {0.5*0.3531} \right)/\left( {{0.5*0.6469} + {0.5*0.3531}} \right)}} \\{= 0.3531}\end{matrix}$ $\begin{matrix}{{\lambda_{1}(0)} = \frac{{\alpha_{1}(0)}{\beta_{1}(0)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{1}(l)}{\beta_{1}(l)}}}} \\{= {\left( {0.8182*0.5923} \right)/\left( {{0.8182*0.5923} + {0.1818*0.4077}} \right)}} \\{= 0.8673}\end{matrix}$ $\begin{matrix}{{\lambda_{1}(1)} = \frac{{\alpha_{1}(1)}{\beta_{1}(1)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{1}(l)}{\beta_{1}(l)}}}} \\{= {\left( {0.1818*0.4077} \right)/\left( {{0.8182*0.5923} + {0.1818*0.4077}} \right)}} \\{= 0.1327}\end{matrix}$ $\begin{matrix}{{\lambda_{2}(0)} = \frac{{\alpha_{2}(0)}{\beta_{2}(0)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{2}(l)}{\beta_{2}(l)}}}} \\{= {\left( {0.8834*0.3763} \right)/\left( {{0.8834*0.3763} + {0.1166*0.6237}} \right)}} \\{= 0.8204}\end{matrix}$ $\begin{matrix}{{\lambda_{2}(1)} = \frac{{\alpha_{2}(1)}{\beta_{2}(1)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{2}(l)}{\beta_{2}(l)}}}} \\{= {\left( {0.1166*0.6237} \right)/\left( {{0.8834*0.3763} + {0.1166*0.6237}} \right)}} \\{= 0.1796}\end{matrix}$ $\begin{matrix}{{\lambda_{3}(0)} = \frac{{\alpha_{3}(0)}{\beta_{3}(0)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{3}(l)}{\beta_{3}(l)}}}} \\{= {\left( {0.1907*0.6533} \right)/\left( {{0.1907*0.6533} + {0.8093*0.3467}} \right)}} \\{= 0.3075}\end{matrix}$ $\begin{matrix}{{\lambda_{3}(1)} = \frac{{\alpha_{3}(1)}{\beta_{3}(1)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{3}(l)}{\beta_{3}(l)}}}} \\{= {\left( {0.8093*0.3467} \right)/\left( {{0.1907*0.6533} + {0.8093*0.3467}} \right)}} \\{= 0.6925}\end{matrix}$ $\begin{matrix}{{\lambda_{4}(0)} = \frac{{\alpha_{4}(0)}{\beta_{4}(0)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{4}(l)}{\beta_{4}(l)}}}} \\{= {\left( {0.7308*0.6273} \right)/\left( {{0.7308*0.6273} + {0.2692*0.3727}} \right)}} \\{= 0.8204}\end{matrix}$ $\begin{matrix}{{\lambda_{4}(1)} = \frac{{\alpha_{4}(1)}{\beta_{4}(1)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{4}(l)}{\beta_{4}(l)}}}} \\{= {\left( {0.2692*0.3727} \right)/\left( {{0.7308*0.6273} + {0.2692*0.3727}} \right)}} \\{= 0.1796}\end{matrix}$ $\begin{matrix}{{\lambda_{5}(0)} = \frac{{\alpha_{4}(0)}{\beta_{4}(0)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{4}(l)}{\beta_{4}(l)}}}} \\{= {\left( {0.8673*1} \right)/\left( {{0.8673*1} + {0.1327*1}} \right)}} \\{= 0.8673}\end{matrix}$ $\begin{matrix}{{\lambda_{5}(1)} = \frac{{\alpha_{4}(1)}{\beta_{4}(1)}}{\sum\limits_{l \in {\{{0,1}\}}}{{\alpha_{4}(l)}{\beta_{4}(l)}}}} \\{= {\left( {0.1327*1} \right)/\left( {{0.8673*1} + {0.1327*1}} \right)}} \\{= 0.1327}\end{matrix}$

In some embodiments, normalization will not occur in the forward and/orbackwards blocks, as it is not strictly necessary, and only provides foreasier visualization of the probabilities.

To determine the sequence that minimizes the risk, the wireless accessmodule may use λ_(t)(k) in some embodiments because each state of thesequence is determined by

${{\hat{S}}_{t} = {\underset{k \in {\{{0,1}\}}}{argmin}\left\{ {R_{t}\left( {{k\underset{\_}{Y}} = \underset{\_}{y}} \right)} \right\}}},{{{and}\mspace{14mu} {R_{t}\left( {k\underset{\_}{Y}} \right)}} = {\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{t}(l)}}}},$

thus

${\hat{S}}_{t} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{{\lambda_{t}(l)}.}}}}$

If the cost of correct sensing (denoted C₀₀,C₁₁) is 0, and the cost ofall sensing errors (denoted as C_(0l),C₁₀) is 1, then the result is thesequence of T states produced by the greater λ_(t)(k) state, where k canbe 0 or 1, for each observation t, where t runs from the oldestobservation in the sensing window to the newest observation in thesensing window (i.e. 0 . . . T).

Sensing Error Policy Goals and Unequal Costs

The costs detailed above can be used for implementing sensing errorpolicy goals as discussed below.

In some embodiments, there are advantages to setting unequal costs forC₀₁ and C₁₀ because C₀₁ is the cost for a missed detection, and C₁₀ isthe cost for false alarm. As discussed herein, the effect on the primaryuser is greater for a missed detection because the secondary user islikely to transmit and interfere with the primary user. However, a falsealarm only affects the secondary user. Similarly, the associated costsshould be similarly weighted so as to make sequence detection dependentupon any policy constraints that are set in place to protect primaryusers.

For example, various wireless standards setting bodies could implementcost constraints for missed detections and false alarms, such as aweighted risk ratio of costs for missed detection to false alarm of 2 to1, 3 to 1, 4 to 1, 10 to 1, and so forth. The costs can be arbitrarilyset to any number greater than 0 based on the policy decision makingparty, or may be based on tests or learning in the spectrum about theprobabilities of a missed detection, p_(m), and false alarm, p_(f),occurring. In the extreme cases, if the ratio of the cost of misseddetection is much larger than the cost of a false alarm, the sensingsystem will always declare the primary user in the ON state. On theother hand, if the cost for a false alarm is much larger than the costof missed detection, the sensing system will always declare the primaryuser in the OFF state.

Other policy decision making parties may be the Federal CommunicationsCommission, wireless equipment manufacturers, distributors, users, andothers. The costs may be implemented in hardware, or software. The costsmay be stored either locally or remotely, together with the primaryspectrum user parameters, or separately so long as they can be accessedby at least a portion of the wireless access module.

For the forward-backward example above, setting the cost of misseddetection C₀₁ to 2 and false alarm C₁₀ to 1 (when all non-errors cost0), yields the following minimum sequence:

$\begin{matrix}{{\hat{S}}_{1} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{1}(l)}}}}} \\{= {{argmin}\left( {{2*0.1327\left( {k = 0} \right)},{1*0.8673\left( {k = 1} \right)}} \right)}} \\{= {0({OFF})}}\end{matrix}$ $\begin{matrix}{{\hat{S}}_{2} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{2}(l)}}}}} \\{= {{argmin}\left( {{2*{0.1796}\left( {k = 0} \right)},{1*{0.8204}\left( {k = 1} \right)}} \right)}} \\{= {0({OFF})}}\end{matrix}$ $\begin{matrix}{{\hat{S}}_{3} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{3}(l)}}}}} \\{= {{argmin}\left( {{2*{0.6925}\left( {k = 0} \right)},{1*{0.3075}\left( {k = 1} \right)}} \right)}} \\{= {1({ON})}}\end{matrix}$ $\begin{matrix}{{\hat{S}}_{4} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{4}(l)}}}}} \\{= {{argmin}\left( {{2*{0.1796}\left( {k = 0} \right)},{1*{0.8204}\left( {k = 1} \right)}} \right)}} \\{= {0({OFF})}}\end{matrix}$ $\begin{matrix}{{\hat{S}}_{5} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{5}(l)}}}}} \\{= {{argmin}\left( {{2*0.1327\left( {k = 0} \right)},{1*0.8673\left( {k = 1} \right)}} \right)}} \\{= {0({OFF})}}\end{matrix}$

This results in the sequence (OFF,OFF,ON,OFF,OFF), which is the same asthe observations. However, setting the cost of missed detection C₀₁ to4.6 and false alarm C₁₀ to 1 (when all non-errors cost 0), yields thefollowing minimum sequence:

$\begin{matrix}{{\hat{S}}_{1} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{1}(l)}}}}} \\{= {{argmin}\left( {{4.6*0.1327\left( {k = 0} \right)},{1*0.8673\left( {k = 1} \right)}} \right)}} \\{= {0({OFF})}}\end{matrix}$ $\begin{matrix}{{\hat{S}}_{2} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{2}(l)}}}}} \\{= {{argmin}\left( {{4.6*{0.1796}\left( {k = 0} \right)},{1*{0.8204}\left( {k = 1} \right)}} \right)}} \\{= {1({ON})}}\end{matrix}$ $\begin{matrix}{{\hat{S}}_{3} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{3}(l)}}}}} \\{= {{argmin}\left( {{4.6*{0.6925}\left( {k = 0} \right)},{1*{0.3075}\left( {k = 1} \right)}} \right)}} \\{= {1({ON})}}\end{matrix}$ $\begin{matrix}{{\hat{S}}_{4} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{4}(l)}}}}} \\{= {{argmin}\left( {{4.6*{0.1796}\left( {k = 0} \right)},{1*{0.8204}\left( {k = 1} \right)}} \right)}} \\{= {1({ON})}}\end{matrix}$ $\begin{matrix}{{\hat{S}}_{5} = {\underset{k \in {\{{0,1}\}}}{argmin}{\sum\limits_{l \in {\{{0,1}\}}}\; {C_{kl}{\lambda_{5}(l)}}}}} \\{= {{argmin}\left( {{4.6*0.1327\left( {k = 0} \right)},{1*0.8673\left( {k = 1} \right)}} \right)}} \\{= {0({OFF})}}\end{matrix}$

This yields the sequence (OFF,ON,ON,ON,OFF), which is a sequence ofdecisions that is more conservative in favor of reducing misseddetections by reporting an ON state for additional time periods.

The cost parameters, together a vector of cost parameters, may be storedin one or more data storage devices accessible by the wireless accessmodule, as disclosed herein.

Complete Forward Only

There are advantages and disadvantages for the wireless access module toperform a complete forward backward analysis to determine the minimalrisk sequence. One advantage is that a complete forward and backwardpass over the set of observations increases accuracy, and allows forgreater exploitation of the hidden Markov model's memory. The advantageof increased accuracy comes at the expense of a longer sensing delaybetween when the primary user was observed and when sensing andtransmission decisions are made by the secondary user. Thus, someembodiments may only implement a portion of the forward-backwardanalysis.

For example, some embodiments may use Complete Forward (CF) instead of,or in addition to, the full Forward-Backward analysis. The CF is usefulwhen trying to maximize the decision making at the current time instantwith minimal delay. When the wireless access module uses this type ofsensing, it does not need to calculate any backward probabilities andonly needs to store the forward probabilities for the states at the mostrecent time instant due to the recursive nature of the calculation. Theprobabilities calculated for the most recent previous time period maybecome similar to, and used in a similar manner as, the initialprobabilities, π₀ and π₁, and fed into the calculation for the next timeperiod. Using this information, the CF may use just the current singlesensing observation to make a forward only decision and still exploithidden Markov model memory observed since the wireless access modulebegan functioning, without the need to store all observations. Instead,just the running forward probability is stored between observations tobe used as, in essence, the next observation's π₀ and π₁ in thecalculation above. For a wireless access module using this feature, thebackward and posterior probability blocks are not needed.

Complete Forward Partial Backward

Although the CF can make quick decisions without the need to store largeamounts of data, the memory in the hidden Markov model is not fullyexploited. Instead, another approach that is used in some embodiments isthe Complete Forward Partial Backward. Referring to FIG. 5A, arrows 551and 552 point to the observations that are being used to calculate theforward probabilities. Arrow 553 points to the small subset ofobservations used to calculate the backwards probabilities, allowing forposterior probabilities to be calculated back three observation timeperiods.

By including a small portion of the backwards probabilities in thesensing decision, the CFPB allows for additional memory to be exploitedresulting in increased accuracy, and still limits the delay in sensingand the amount of observation data that the wireless access module muststore. Using CFPB, only the observations that are in the partialbackward calculation must be stored. For example, in the embodimentsrepresented by FIG. 5A, only the first three observations must beseparately stored. The remaining observations are only needed for thecomplete forward component, and thus may be summarized by one or moreprobability pairs similar to π₀ and π₁. The amount of time periods tocompute the backwards probabilities over can be arbitrarily large, suchas 1 period, 2 periods, 3 periods, 4 periods, etc, each with a higheraccuracy gain. Surprisingly in fact, under certain circumstances such asthose illustrated in 7, a CFPB implementation incorporating two backwardtime periods may perform nearly as well as a partial or full backwardspass taking into account 10 or 100 backward time periods. However, theaccuracy gain by CFPB compared to CF comes at the expense of a slightincrease in complexity, sensing delay, and memory usage. Thus, thelonger the partial backward window, the more delay, complexity, andmemory costs are incurred.

Observation Windows

An observation window is a set of observation data tracked by thewireless access module. An observation window in some embodimentscorresponds to the most recent observations that have been taken by asecondary user. The observations in the window have a time order, state,and are usually consecutive. Observation windows may be stored in anystorage device, including but not limited to memory, cache, magneticdisk, local or remote storage, a NAS, a SAN, in the cloud, or the like.Any data structure that can store, access, and order the ON/OFFobservations may be used to implement the window.

An observation window has a starting observation point and an endingobservation point. The starting point corresponds to the oldestobservation that is required by the wireless access module to make asensing decision, whereas the end observation is the most recentobservation that was used or will be used to make a sensing decision. Anobservation window can be arbitrarily large. The longer it is, the morememory can be exploited for sensing, but may increase sensing delay,computation, and complexity.

Turning to FIG. 5B, the set of observations to be used in theforward-backward implementation may be a non-overlapping or overlappingwindow. 503 illustrates a non-overlapping window. As time progresses,observations are stored in the window. When a sensing decision is made,observations in the window are used for the sensing determination, andthen may be discarded or ignored. FIG. 5B shows three possiblenon-overlapping windows. Non-overlapping window 503 may be discardedafter the sensing decision for that window has been made. The nextsensing decision will be made after window 505 has received and storedall observations. In some embodiments, partial calculations for thenon-overlapping window can be made before all observations are presentin the window.

An overlapping window 504 is illustrated by a set of sequentialobservations shown in FIG. 5B. An overlapping window 504 differs from anon-overlapping window in that in each time period a new observation maybe added and old observation removed from the window. In this way, thewindow is constantly adding recent observations and discarding old ones.After an observation is added, probabilities are calculated and asensing decision is made on the observations using the techniques shownherein.

An overlapping window need not only add one observation at a time beforecalculations are made. Some embodiments may add more than oneobservation before making a new sensing decision. For example, it mayadd two observations, which would produce a sensing decision every otherobservation. An overlapping window that adds and removes a number ofobservations equivalent to its size before a sensing determination ismade is equivalent to a non-overlapping window. An overlapping window issometimes referred to as a sliding window, or overlapping slidingwindow.

Unlike in energy detection, sequence or state detection takes intoaccount a state change that can occur in the middle of the observationwindow. Given a large enough observation window, energy detection failsto detect a state change in the middle of a window because it isperforming averaging across the entire window. Sequence detectioncorrects this problem by using a hidden Markov model's memory to predictstate changes within an observation window.

Sensing Using Forward-Backward

FIG. 6A shows a portion of how one embodiment's wireless access module,or a portion thereof, makes the sensing decision for the secondary user.FIG. 6A depicts the functionality in one cycle of this embodiment. Notdepicted in this embodiment is the observation collection from theantenna and related hardware and software, nor any software or hardwaremaking a transmission decision.

The embodiment in FIG. 6A begins with reading in observation data in thesensing window 601. This may be done by accessing any local or remotestorage device, or involve accessing memory. Alternatively, someembodiments may already have all the data to be accessed already in asensing window. The data in the sensing window is used to calculate theminimum risk sequence or states, as depicted herein.

In some embodiments, such as ones using CF or CFPB, the next block is todetermine the forward state probabilities 602 as depicted herein basedon the observation(s) and the primary user spectrum use parameters. Thismay result in many calculated probabilities, or one probability asdiscussed herein depending on the data structure used and the amount ofmemory to be exploited. For example, for the CF implementation of thewireless access module, only one forward probability need be computed.

In some embodiments, block 603 is for determining the backward stateprobabilities based on the primary user spectrum use parameters asdiscussed herein. In some embodiments, such as those embodiments usingCF, this block is not necessary.

Some embodiments calculate posterior state probabilities 604 such asthose embodiments that use the full Forward-Backward system. Thecalculation of the posterior probabilities is based on the calculationof forward 602 and backwards 603 probabilities. This block is optionaldepending on which implementation is used. For example, if using CF,then posterior probabilities and backwards probabilities blocks are notrequired.

In block 605, the wireless access module determines the risks for asequence and/or state based on cost factors and posterior stateprobabilities as discussed herein. The costs may comprise the cost formissed detection and the cost for false alarm, or there may be one equalcost for both. The costs may be coded in hardware or software, and beread from any data storage device. Alternatively, a forward probabilitycan be used instead of the posterior probability if there was nobackwards probability calculated for a given time period because theposterior probability would equal the forward probability in this case.

In block 606, the minimum risk may be determined based on all or asubset of the risk calculations performed in block 605.

In block 607 incorporated in some embodiments, the potential sequenceand/or state(s) associated with the minimum risk are selected. Theselected states and or sequences are then sent to the sensing decisionconsumer as described herein. Some embodiments may send a singlepotential primary user state based on the sensing decision correspondingto the best guess of the most current state given the risk analysis andcost factors. Some embodiments may send multiple states, or one or moresequences that correspond to the minimum risk sequence. Some embodimentsmay send together with the states and/or sequences, or instead of thestates and/or sequences, the calculated risks and/or probabilitiesassociated with time periods in the observation window.

Turning to the portion of the embodiment depicted in FIG. 6B, it differsfrom FIG. 6A at block 613. In this embodiment, CFPB is used to determinebackwards probabilities for only a subset of observations in theobservation window, as described herein.

Performance Comparison

The disclosure herein provides for tradeoffs that can be made betweensensing accuracy on the one hand and sensing delay, computation, andcomplexity on the other.

FIG. 7 shows the comparative performance of the various versions of theForward-Backward implementations. FIG. 7 is a graph showing comparativerisk for each implementation at a given signal to noise ratio, whendetection is done with a channel OFF/ON dwell time of 200 and 100observation time periods respectively, and the cost of a misseddetection is 10 times the cost of a false alarm. When the signal tonoise ratio is low (i.e. the amount of noise and interference is high),the risk for all implementations is high because there is a higher riskof missed detection and false alarm. However, when the signal to noiseratio improves, noticeable differences can be seen between the CF andCFPB implementations. CFPB with only 1 backwards probability calculationperforms significantly better than CF at higher SNR. Surprisingly ofnote, CFPB with only 2 backwards probability calculations performssubstantially equally with CFPB with 10 and 100 partial backwardscalculations given a large enough SNR. In an embodiment, the system canbe configured to between 2 and 5 backwards probability calculations tomaintain efficiency and accuracy.

FIG. 8 shows comparative detection probability versus observation windowsize of sensing schemes described herein against energy detection withnon-overlapping and overlapping windows. The graph uses an ON/OFF dwelltime of 2000 and 1000 time periods respectively, with an SNR of −10 dB,and a probability of false alarm equal to 0.1. The graph shows that whenthe sensing window is relatively small, the performances are similar.However, when the length of the sensing window is comparable to theaverage length of an ON/OFF period, the effect of the state changes in asensing window can be seen, and the performance of energy detection isseriously affected because it does not take into account state changeswithin a window. The performance of weighted cost sequence detectionhowever is unaffected because it takes possible state changes intoconsideration by making sequence decisions and exploiting the memory inthe hidden Markov model.

Conditional language, such as, among others, “can,” “could,” “might,” or“may,” unless specifically stated otherwise, or otherwise understoodwithin the context as used, is generally intended to convey that certainembodiments include, while other embodiments do not include, certainfeatures, elements and/or steps. Thus, such conditional language is notgenerally intended to imply that features, elements and/or steps are inany way required for one or more embodiments or that one or moreembodiments necessarily include logic for deciding, with or without userinput or prompting, whether these features, elements and/or steps areincluded or are to be performed in any particular embodiment. Theheadings used herein are for the convenience of the reader only and arenot meant to limit the scope of the inventions or claims.

Although this invention has been disclosed in the context of certainpreferred embodiments and examples, it will be understood by thoseskilled in the art that the present invention extends beyond thespecifically disclosed embodiments to other alternative embodimentsand/or uses of the invention and obvious modifications and equivalentsthereof. Additionally, the skilled artisan will recognize that any ofthe above-described methods can be carried out using any appropriateapparatus. Further, the disclosure herein of any particular feature,aspect, method, property, characteristic, quality, attribute, element,or the like in connection with an embodiment can be used in all otherembodiments set forth herein. Thus, it is intended that the scope of thepresent invention herein disclosed should not be limited by theparticular disclosed embodiments described above.

Although the embodiments of the inventions have been disclosed in thecontext of a certain preferred embodiments and examples, it will beunderstood by those skilled in the art that the present inventionsextend beyond the specifically disclosed embodiments to otheralternative embodiments and/or uses of the inventions and obviousmodifications and equivalents thereof. In addition, while a number ofvariations of the inventions have been shown and described in detail,other modifications, which are within the scope of the inventions, willbe readily apparent to those of skill in the art based upon thisdisclosure. It is also contemplated that various combinations orsubcombinations of the specific features and aspects of the embodimentsmay be made and still fall within one or more of the inventions.Accordingly, it should be understood that various features and aspectsof the disclosed embodiments can be combined with or substituted for oneanother in order to form varying modes of the disclosed inventions. Forall of the embodiments described herein the steps of the methods neednot be performed sequentially. Thus, it is intended that the scope ofthe present inventions herein disclosed should not be limited by theparticular disclosed embodiments described above.

1. A spectrum sensing system, the system comprising: an antennaconfigured to receive electromagnetic signals in one or more frequencyspectrums; one or more data storage devices storing a primary user stateobservation data set corresponding to a frequency spectrum and one ormore primary user spectrum use parameters; and one or more processors incommunication with the antenna and the one or more data storage devices,the one or more processors configured to execute modules comprising atleast a sensing module configured to: determine one or more forwardstate probabilities based on the one or more primary user spectrum useparameters and a first subset of the primary user state observation dataset corresponding to the frequency spectrum; determine one or morebackward state probabilities based on the one or more primary userspectrum use parameters and a second subset of the primary user stateobservation data set corresponding to the frequency spectrum; determineone or more posterior state probabilities for one or more observationsin the primary user state observation data set; determine a risk of asensing error for each potential primary user state corresponding to anobservation period about which a sensing decision is being made based onone or more cost factors and the one or more posterior stateprobabilities; select a potential primary user state having a minimumamount of risk of sensing error for each observation corresponding to atime period about which a sensing decision is being made; send the oneor more selected potential primary user states to a sensing decisionconsumer.
 2. The system of claim 1, wherein the cost factors are storedin the one or more data storage devices.
 3. The system of claim 1,wherein the one or more data storage devices comprises a first datastorage device where the primary user state observation data setcorresponding to a frequency spectrum is stored, and a second datastorage device where the one or more primary user spectrum useparameters are stored
 4. The system of claim 1, wherein the first subsetof the primary user state observation data set is a non-overlappingwindow.
 5. The system of claim 1, wherein the first subset of theprimary user state observation data set is an overlapping window.
 6. Thesystem of claim 1, wherein the second subset of the primary user stateobservation data set is a smaller subset of the first subset of theprimary user state observation data set.
 7. The system of claim 1,wherein the risk is determined based on two cost factors.
 8. The systemof claim 7, wherein the two cost factors comprise a first weighted riskof false alarm and a second weighted risk of missed detection.
 9. Thesystem of claim 1, wherein determining the one or more backward stateprobabilities comprises determining one or more partial backward stateprobabilities.
 10. The system of claim 1, wherein the determining of oneor more forward state probabilities based on the one or more primaryuser spectrum use parameters and a first subset of the primary userstate observation data set is further based on a running forwardprobability.
 11. A spectrum sensing system, the system comprising: anantenna configured to receive electromagnetic signals in one or morefrequency spectrums; one or more data storage devices storing a primaryuser state observation data set corresponding to a frequency spectrumand one or more primary user spectrum use parameters; and one or moreprocessors and in communication with the antenna and the one or moredata storage devices, the one or more processors configured to executemodules comprising at least a sensing module configured to: a sensingmodule configured to: determine one or more forward state probabilitiesbased on the one or more primary user spectrum use parameters and afirst subset of the primary user state observation data setcorresponding to the frequency spectrum; determine one or more partialbackward state probabilities based on the one or more primary userspectrum use parameters and a second subset of the primary user stateobservation data set corresponding to the frequency spectrum; determineone or more posterior state probabilities for one or more observationsin the primary user state observation data set; select a potentialprimary user state for each observation corresponding to a time periodabout which a sensing decision is being made; send the one or moreselected potential primary user states to a sensing decision consumer.12. The system of claim 11, wherein the one or more data storage devicescomprises a first data storage device where the primary user stateobservation data set corresponding to a frequency spectrum is stored,and a second data storage device where the one or more primary userspectrum use parameters are stored
 13. The system of claim 11, whereinthe first subset of the primary user state observation data set is anon-overlapping window.
 14. The system of claim 11, wherein the firstsubset of the primary user state observation data set is an overlappingwindow.
 15. The system of claim 11, wherein the second subset of theprimary user state observation data set is a smaller subset of the firstsubset of the primary user state observation data set.
 16. The system ofclaim 11, wherein the selecting of the potential primary user statebased on the one or more posterior state probabilities further comprisesdetermining a risk of a sensing error occurring for each potentialprimary user state based on one or more cost factors and selecting thepotential primary user state having a minimum amount of risk of sensingerror.
 17. The system of claim 16, wherein the risk is determined basedon two cost factors.
 18. The system of claim 17, wherein the two costfactors comprise a first weighted risk of false alarm and a secondweighted risk of missed detection.
 19. The system of claim 11, whereinthe determining of one or more forward state probabilities based on theone or more primary user spectrum use parameters and a first subset ofthe primary user state observation data set is further based on arunning forward probability.
 20. A computer implemented method ofspectrum sensing comprising: accessing computer-executable instructionsfrom at least one computer-readable storage medium; and executing thecomputer-executable instructions, thereby causing computer hardwarecomprising at least one computer processor to perform operationscomprising: receiving one or more primary user spectrum use parameters;receiving a primary user state observation data set corresponding to afrequency spectrum; receiving one or more cost factors; determining oneor more forward state probabilities based on the one or more primaryuser spectrum use parameters and a first subset of the primary userstate observation data set corresponding to the frequency spectrum;determining one or more partial backward state probabilities based onthe one or more primary user spectrum use parameters and a second subsetof the primary user state observation data set corresponding to thefrequency spectrum; determining one or more posterior stateprobabilities for one or more observations in the primary user stateobservation data set; determining a risk of a sensing error for eachpotential primary user state corresponding to an observation periodabout which a sensing decision is being made based on one or more costfactors and the one or more posterior state probabilities; selecting apotential primary user state having a minimum amount of risk of sensingerror for each observation corresponding to a time period about which asensing decision is being made; sending the one or more selectedpotential primary user states to a sensing decision consumer.
 21. Themethod of claim 20, wherein the first subset of the primary user stateobservation data set is a non-overlapping window.
 22. The method ofclaim 20, wherein the first subset of the primary user state observationdata set is an overlapping window.
 23. The method of claim 20, whereinthe second subset of the primary user state observation data set is asmaller subset of the first subset of the primary user state observationdata set.
 24. The method of claim 20, wherein the risk is determinedbased on two cost factors.
 25. The method of claim 24, wherein the twocost factors comprise a first weighted risk of false alarm and a secondweighted risk of missed detection.
 26. The method of claim 20, whereinthe determining of one or more forward state probabilities based on theone or more primary user spectrum use parameters and a first subset ofthe primary user state observation data set is further based on arunning forward probability.
 27. A storage medium having a computerprogram stored thereon for causing a suitably programmed system toprocess computer-program code by performing a method when the computerprogram is executed on the suitably programmed system, the methodcomprising: receiving one or more primary user spectrum use parameters;receiving a primary user state observation data set corresponding to afrequency spectrum; receiving one or more cost factors; determining oneor more forward state probabilities based on the one or more primaryuser spectrum use parameters and a first subset of the primary userstate observation data set corresponding to the frequency spectrum;determining one or more partial backward state probabilities based onthe one or more primary user spectrum use parameters and a second subsetof the primary user state observation data set corresponding to thefrequency spectrum; determining one or more posterior stateprobabilities for one or more observations in the primary user stateobservation data set; determining a risk of a sensing error for eachpotential primary user state corresponding to an observation periodabout which a sensing decision is being made based on one or more costfactors and the one or more posterior state probabilities; selecting apotential primary user state having a minimum amount of risk of sensingerror for each observation corresponding to a time period about which asensing decision is being made; sending the one or more selectedpotential primary user states to a sensing decision consumer.
 28. Thestorage medium of claim 27, wherein the first subset of the primary userstate observation data set is a non-overlapping window.
 29. The storagemedium of claim 27, wherein the first subset of the primary user stateobservation data set is an overlapping window.
 30. The storage medium ofclaim 27, wherein the second subset of the primary user stateobservation data set is a smaller subset of the first subset of theprimary user state observation data set.
 31. The storage medium of claim27, wherein the risk is determined based on two cost factors.
 32. Thestorage medium of claim 31, wherein the two cost factors comprise afirst weighted risk of false alarm and a second weighted risk of misseddetection.
 33. The storage medium of claim 27, wherein the determiningof one or more forward state probabilities based on the one or moreprimary user spectrum use parameters and a first subset of the primaryuser state observation data set is further based on a running forwardprobability.
 34. A spectrum sensing system, the system comprising: anantenna configured to receive electromagnetic signals in one or morefrequency bands; one or more data storage devices storing a data set, afirst parameter vector, and a second parameter vector, said data setrepresentative of primary user state observation data corresponding tothe one or more frequency bands, said first parameter vectorrepresentative of primary user spectrum use parameters, and said secondparameter vector representative of cost parameters; one or moreprocessors with the antenna and the one or more data storage devices,said processor configured to execute modules; a sensing moduleconfigured to: determine a first set of quantities from a first subsetof the data set and the first parameter vector; determine a second setof quantities from a second subset of the data set and the firstparameter vector; determine a primary user state estimate from the firstset of quantities, the second set of quantities, and the secondparameter vector send the primary user state estimate to a sensingdecision consumer.
 35. The system of claim 34, wherein the first set ofquantities comprise forward probabilities.
 36. The system of claim 35,wherein the second set of quantities comprise backward probabilities,and the second set of quantities has fewer members than the first set ofquantities.
 37. The system of claim 34, wherein the data set comprisesan overlapping window.
 38. The system of claim 34, wherein the data setcomprises an non-overlapping window.
 39. The system of claim 34, whereinthe cost parameters comprise a first weighted risk of false alarm and asecond weighted risk of missed detection.